﻿
/*
返回信息：
"<>"用于表示该处由服务器端设定
    消息结构
    COMMAND:<command>,
    FOR:<content 01>,
    CONTENT:<value or key>,
    <offset>

接收信息：
"<>"用于表示该处由客户端设定
    消息结构
    <account>:
    {
        COMMAND:<command>,
        FOR:<content 01>,
        CONTENT:<value or key>,
    }<offset>

处理过程：
1.  {
        COMMAND:<command>,
        FOR:<content 01>,
        CONTENT:<value or key>,
    }<offset>
2.
    COMMAND:<command>,
    FOR:<content 01>,
    CONTENT:<value or key>,


COMMAND	FOR	CONTENT_00
GET	Get What	-X-
SET	Set What	Value
Login	Account	Password
Rigist	Account	Password
HeartBeat	-X-	-X-
Get指令	对应字符串
获取商店信息	Shop
获取玩家信息	PlayerInfo
获取玩家信息	Bag
获取Boss信息	BossInfo
Set指令	对应字符串
设置商店信息	Permission Denied
设置玩家信息	PlayerInfo
设置背包信息	Bag
设置Boss信息	Permission Denied
*/
#ifndef NETPACKAGE_H
#define NETPACKAGE_H

#include <iostream>
class NetPackage
{

private:
    std::string account;
    std::string cmd;
    std::string FOR;
    std::string content_00;
    std::string ciphertext; //密文
    std::string plaintext;  //明文
public:
    NetPackage();
    NetPackage(NetPackage &&) = default;
    NetPackage(const NetPackage &) = default;
    NetPackage &operator=(NetPackage &&) = default;
    NetPackage &operator=(const NetPackage &) = default;
    //解密
    void Decrypt();
    //加密
    void Encrypt();
    NetPackage(std::string plaintext);
    void SetPlain(std::string str);
    std::string GetPlain();
    std::string GetCipher();
    std::string Account();
    std::string Command();
    std::string ForText();
    std::string CONTENT();
    ~NetPackage();
};

#endif // !NETPACKAGE_H
